/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Estructuras;

import Estructuras.Tipos.User;

/**
 *
 * @author usuario_local
 */

public class Usuarios {
   private static Usuarios instance = null;
   private User lista[];
   private int tamaño;

   protected Usuarios() {
       lista= new User[20];
       lista[0]= new User("admin",0);
       lista[1]= new User("pepe",1);
       lista[2]= new User("jesus",2);
       tamaño = 3;
   }
   public static Usuarios getInstance() {
      if(instance == null) {
         instance = new Usuarios();
      }
      return instance;
   }
   public String toString(){
       String s = "";
       for(int i = 1;i<tamaño;i++){
           //s+= "<FORM method=\"post\" action=\"administrador.jsp\" >";
           s+= "Usuario "+lista[i].getNombre()+". ";
           s+= "Es ";
           int p = lista[i].getPrioridad();
           if (p==0) s+="Administrador";
           else if(p ==1) s+="Autorizado";
           else s+="Invitado";
           s+= ". Convertir en: <br>\n";
           s+= "<FORM method=\"post\" action=\"index.jsp\" >";
           s+= "<input type=\"submit\" value=\"Invitado\" name=\"invitado\" style='width:150px; height:25px'/>";
           s+= "<input type=\"hidden\" value=\"invitado"+i+"\" name=\"form\" />";
           s+= "<input type=\"hidden\" name=\"adm\" value=\"ad\" />";
           s+= "</FORM>\n";
           s+="          ";
           s+= "<FORM method=\"post\" action=\"index.jsp\" >";
           s+= "<input type=\"submit\" value=\"Autorizado\" name=\"autorizado\" style='width:150px; height:25px' />";
           s+= "<input type=\"hidden\" value=\"autorizado"+i+"\" name=\"form\" />";
           s+= "<input type=\"hidden\" name=\"adm\" value=\"ad\" />";
           s+= "</FORM>\n";
           s+="          ";
           s+= "<FORM method=\"post\" action=\"index.jsp\" >";
           s+= "<input type=\"submit\" value=\"Administrador\" name=\"administrador\" style='width:150px; height:25px'/>";
           s+= "<input type=\"hidden\" value=\"administrador"+i+"\" name=\"form\" />";
           s+= "<input type=\"hidden\" name=\"adm\" value=\"ad\" />";
           s+= "</FORM>\n";
       }
       return s;
   }

   public boolean cambiaPrioridad(int i, int prio){
        if(i>=0){
            lista[i].setPrioridad(prio);
            return true;
        }
        return false;
   }
   public boolean borraUsuario(String nom){
       int posicion=esta(nom);
       if(posicion>0){
            lista[posicion]=lista[tamaño-1];
            lista[tamaño-1]=null;
            tamaño--;
            return true;
       }
       return false;
   }
   public boolean añadeUsuario(String nom, int prio){
        if(esta(nom)<0 & tamaño<20){
            lista[tamaño] = new User(nom,prio);
            tamaño++;
            return true;
        }
        
        return false;
   }
   public int esta(String nom){
        for(int i=0;i<tamaño;i++){
            if(lista[i].getNombre().equals(nom))
                return i;
        }
        return -1;
   }
   public boolean puede(String nom,int pri){
       for(int i=0;i<tamaño;i++){
            if(lista[i].getNombre().equals(nom)&&(lista[i].getPrioridad()<=pri))
                return true;
        }
       return false;
   }
}
